package cn.iocoder.yudao.framework.validation;

import cn.hutool.core.util.StrUtil;
import jakarta.validation.ConstraintValidator;
import jakarta.validation.ConstraintValidatorContext;

/**
 * @author 山野羡民
 * @since 2025/02/24
 */
public class LandingUrlValidator implements ConstraintValidator<LandingUrl, String> {

    @Override
    public boolean isValid(String value, ConstraintValidatorContext context) {
        // 如果输入为空，默认不校验，即校验通过
        if (StrUtil.isBlank(value)) {
            return true;
        }
        // 校验是落地页地址
        value = value.toLowerCase();
        if (value.startsWith("http")) {
            return true;
        }
        if (value.startsWith("/")) {
            return true;
        }
        if (value.equals("#")) {
            return true;
        }
        return cn.hutool.core.lang.Validator.isUrl(value);
    }

}
